Communication between different entities of a processing environment is managed in order to efficiently perform the communication and to preserve data integrity. Typically, this management includes the locking of data structures used in communicating between the entities. For instance, in the z/Architecture®, offered by International Business Machines Corporation, Armonk, N.Y., a processor and an input/output (I/O) communications process, such as a subchannel process, use shared control blocks and queues to communicate with one another. When these data structures are updated, locks are used to ensure only one update occurs at a time.
While locking is effective in serializing operations and protecting the data, there are disadvantages associated with locking. As examples, locking causes severe performance problems and requires recovery procedures.